package 面试;

import java.util.Arrays;
import java.util.Comparator;
/*
 给定一组非负整数 nums，重新排列每个数的顺序（每个数不可拆分）使之组成一个最大的整数。
 注意：输出结果可能非常大，所以你需要返回一个字符串而不是整数。
 输入：nums = [10,2]
 输出："210"

 输入：nums = [3,30,34,5,9]
 输出："9534330"
  */
public class 组成一个最大的整数leetcode179 {


    public static void main(String[] args) {
        Integer[] nums = {3,30,34,5,9};
        System.out.println(fun(nums));
    }
    public static String  fun(Integer[] nums){
        if (nums == null || nums.length == 0){
            return "";
        }
        if (nums.length == 1){
            return nums[0] + "";
        }
        Comparator<Integer> comparator = (s1, s2) -> {
            int num1 = Integer.valueOf(s1 + ""  + s2);
            int num2 = Integer.valueOf(s2 + ""  + s1);
            return num2 - num1;
        };
        Arrays.sort(nums, comparator);
        String result = "";
        for (Integer num : nums) {
            result = result + num + ",";
        }
        return result;
    }
}
